/**
 * 
 */
package interfaces;

import java.sql.Statement;
import java.util.List;

import Utils.Concurrent.TaskRunError;

import datatype.DBtypes.FilmfromDB;
import datatype.DBtypes.ProgramfromDB;
import datatype.searchtype.SearchResult.MediaRes;
import datatype.searchtype.SearchResult.PersonRes;

/**
 * @author Yuval
 * 
 */

public interface MediaManagment {

	// all the function for the search page, they all return list off all the
	// desired

	public List<MediaRes> getAllFilmStartWith(String query, Statement stm) throws TaskRunError;

	public List<MediaRes> getAllProgramStartWith(String query, Statement stm)
			throws TaskRunError;
	
	public List<PersonRes> getAllActorsStartWith(String query, Statement stm)
			throws TaskRunError;

	public List<PersonRes> getAllActorsStartWith(String query, Statement stm, boolean isFilm)
			throws TaskRunError;

	public List<PersonRes> getAllCreatorStartWith(String query, Statement stm)
			throws TaskRunError;

	public List<PersonRes> getAllDirectorStartWith(String query, Statement stm)
			throws TaskRunError;

	public ProgramfromDB getProgramFromDB(int id, Statement stm) throws TaskRunError;

	public FilmfromDB getFilmFromDB(int id, Statement stm) throws TaskRunError;

	public boolean newActor(String fName, String lName, Statement stm) throws TaskRunError;

	public boolean newCreator(String fName, String lName, Statement stm) throws TaskRunError;

	public boolean newDirector(String fName, String lName, Statement stm) throws TaskRunError;

	public boolean updateFilm(FilmfromDB filmToupdate, Statement stm) throws TaskRunError;

	public boolean updateProgram(ProgramfromDB programToupdate, Statement stm)
			throws TaskRunError;

}
